opts.config.shell().status("Uploading", pkg.package_id().to_string())?;
transmit(opts.config, pkg, tarball.file(), &mut registry, opts.dry_run)?;
- if opts.config.is_token_in_main_config() {
- let _ = opts.config
- .shell()
- .warn("API token detected in ~/.cargo/config under `registry.token`.\n \
- You should remove it and do `login` again in order to \
- save token in ~/.cargo/credentials");
- }
-
Ok(())
}
extra_verbose: Cell<bool>,
frozen: Cell<bool>,
locked: Cell<bool>,
-
- // A temporary solution to point on an old configuration's usage.
- // If it's true cargo will warn on it on publish.
- token_in_main_config: Cell<bool>,
}
impl Config {
extra_verbose: Cell::new(false),
frozen: Cell::new(false),
locked: Cell::new(false),
- token_in_main_config: Cell::new(false),
}
}
!self.frozen.get() && !self.locked.get()
}
- pub fn is_token_in_main_config(&self) -> bool {
- self.token_in_main_config.get()
- }
-
pub fn load_values(&self) -> CargoResult<HashMap<String, ConfigValue>> {
let mut cfg = CV::Table(HashMap::new(), PathBuf::from("."));
Ok(())
}).chain_err(|| "Couldn't load Cargo configuration")?;
- self.token_in_main_config.set(check_token_in_main_config("registry.token".into(), &cfg));
-
let mut map = match cfg {
CV::Table(map, _) => map,
_ => unreachable!(),
Ok(Some(token.trim().into()))
}
-
-fn check_token_in_main_config(key: &str, cfg: &ConfigValue) -> bool {
- let mut keys = key.split('.');
- let k = keys.next().unwrap();
- let keys: String = keys.map(String::from).collect();
-
- match *cfg {
- CV::Table(ref map, _) => {
- match map.get(k) {
- Some(ref v) => check_token_in_main_config(keys.as_str(), v),
- None => return false,
- }
- }
- CV::String(ref v, _) => !v.is_empty(),
- _ => return false,
- }
-}
assert_that(p.cargo_process("publish").arg("--no-verify")
.arg("--host").arg(registry().to_string()),
- execs().with_status(0).with_stderr_contains(&format!("\
+ execs().with_status(0).with_stderr(&format!("\
[UPDATING] registry `{reg}`
[WARNING] manifest has no documentation, [..]
See [..]
assert_that(p.cargo_process("publish").arg("--dry-run")
.arg("--host").arg(registry().to_string()),
- execs().with_status(0).with_stderr_contains(&format!("\
+ execs().with_status(0).with_stderr(&format!("\
[UPDATING] registry `[..]`
[WARNING] manifest has no documentation, [..]
See [..]